/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package controllers;

import controllers.mysqlconnector.ConexionBD;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter;
import javax.swing.table.DefaultTableModel;
import models.enums.TipoClasificacion;
import models.enums.TipoGenero;

/**
 *
 * @author alex
 */
public class Peliculas extends ConexionBD {

    public List<String> getPeliculas() {
        super.realizarConexion();
        consulta = "select * from pelicula";
        regreso = super.realizarConsulta(consulta);
        List<String> peliculas = new ArrayList<>();
        try {
            while (regreso.next()) {
                String pelicula = regreso.getString("titulo");
                // add group names to the array list
                peliculas.add(pelicula);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Peliculas.class.getName()).log(Level.SEVERE, null, ex);
        }

        try {
            regreso.close();
        } catch (SQLException ex) {
            Logger.getLogger(Peliculas.class.getName()).log(Level.SEVERE, null, ex);
        }

        System.out.println(peliculas);
        return peliculas;
    }

    public ResultSet listPeliculas() {
        consulta = "select titulo from pelicula;";
        regreso = realizarConsulta(consulta);
        return regreso;
    }
    
    public ResultSet idPeliculas(String titulo) {
        consulta = "select idPelicula from pelicula where titulo like '"+titulo+"';";
        regreso = realizarConsulta(consulta);
        return regreso;
    }
    
    public List<String> getPeliculasDuracion() {
        super.realizarConexion();
        consulta = "select duracion from pelicula";
        regreso = super.realizarConsulta(consulta);
        List<String> duraciones = new ArrayList<>();
        try {
            while (regreso.next()) {
                String duracion = regreso.getString("duracion");
                // add group names to the array list
                duraciones.add(duracion);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Peliculas.class.getName()).log(Level.SEVERE, null, ex);
        }

        try {
            regreso.close();
        } catch (SQLException ex) {
            Logger.getLogger(Peliculas.class.getName()).log(Level.SEVERE, null, ex);
        }

        System.out.println(duraciones);
        return duraciones;
    }

    public void eliminarPelicula(String pelicula) {
        consulta = "delete from pelicula where titulo like '" + pelicula + "';";
        realizarActualizacion(consulta);
        JOptionPane.showMessageDialog(null, "Pelicula eliminada con exito.");

    }
    public void agregarPelicula(String titulo, Integer duracion, String tipoGenero, String clasificacion, String poster) {

        consulta = "insert into pelicula(titulo, duracion, genero, clasificacion, poster) values ('" + titulo + "', " + duracion + ", '" + tipoGenero + "', '" + clasificacion + "', '" + poster + "');";
        realizarActualizacion(consulta);
    }

    public List<TipoClasificacion> getClasificaciones() {

        List<TipoClasificacion> tipoClasificaciones = new ArrayList<>(EnumSet.allOf(TipoClasificacion.class));

        return tipoClasificaciones;
    }

    public List<TipoGenero> getGeneros() {

        List<TipoGenero> tipoGeneros = new ArrayList<>(EnumSet.allOf(TipoGenero.class));
        return tipoGeneros;
    }
public String getPoster(){
        String archivoPath = null;
    JFileChooser chooser = new JFileChooser();
        FileNameExtensionFilter filter = new FileNameExtensionFilter(
                "png", "jpg", "gif");
        chooser.setFileFilter(filter);
        int returnVal = chooser.showOpenDialog(null);
        if (returnVal == JFileChooser.APPROVE_OPTION) {
            try {
                System.out.println("You chose to open this file: "
                        + chooser.getSelectedFile().getName());
                archivoPath = chooser.getSelectedFile().getPath();
                
            } catch (Exception ex) {
                System.out.println("Not Found");
            }
        }
        
        
    
    return archivoPath;
    }
    

public DefaultTableModel getTablaPeliculas(){
    DefaultTableModel dtmPeliculas;   
    String [] titulos = {"idPelicula","Titulo","Duracion","Genero","Clasificacion"};
    String [] registros = new String [5];
    consulta = "select * from pelicula;";
    ResultSet rs = super.realizarConsulta(consulta);
    dtmPeliculas = new DefaultTableModel(null,titulos);
    if(rs != null){
        try {
            
            rs.next();
            registros [0] = rs.getString("idPelicula");
            registros [1] = rs.getString("titulo");
            registros [2] = rs.getString("duracion");
            registros [3] = rs.getString("genero");
            registros [4] = rs.getString("clasificacion");
            dtmPeliculas.addRow(registros);
            while(rs.next()){
                
            registros [0] = rs.getString("idPelicula");
            registros [1] = rs.getString("titulo");
            registros [2] = rs.getString("duracion");
            registros [3] = rs.getString("genero");
            registros [4] = rs.getString("clasificacion");
                
                dtmPeliculas.addRow(registros);
            }
        } catch (SQLException ex) {
            Logger.getLogger(Salas.class.getName()).log(Level.SEVERE, null, ex);
        }
    }else {
        JOptionPane.showMessageDialog(null, "Lo sentimos no ha introducido peliculas");
    }      
    return dtmPeliculas;
    } 

}
